package com.yeyks.consumer.dal.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 会员卡表
 * </p>
 *
 * @author yun
 * @since 2019-12-25
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="MemberCard对象", description="会员卡表")
public class MemberCard implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "会员卡号")
    @TableField("card_no")
    private String cardNo;

    @ApiModelProperty(value = "安全码")
    @TableField("security_code")
    private String securityCode;

    @ApiModelProperty(value = "会员卡密码")
    @TableField("password")
    private String password;

    @ApiModelProperty(value = "酒店ID")
    @TableField("hotel_id")
    private Integer hotelId;

    @ApiModelProperty(value = "售卡商(运营商/服务商ID(3.8.1去除)/卡商ID)")
    @TableField("saler_id")
    private Integer salerId;

    @ApiModelProperty(value = "0:运营商 1：服务商(3.8.1去除) 2：卡商")
    @TableField("saler_type")
    private Integer salerType;

    @ApiModelProperty(value = "1:甄选  2：精选")
    @TableField("card_type")
    private Integer cardType;

    @ApiModelProperty(value = "0:不可激活 1:可激活")
    @TableField("enable")
    private Integer enable;

    @ApiModelProperty(value = "状态默认0未激活，1已激活，2已绑定")
    @TableField("status")
    private Integer status;

    @ApiModelProperty(value = "是否代卖，默认0自营，1代卖")
    @TableField("help_pay")
    private Integer helpPay;

    @ApiModelProperty(value = "销售类型，1线下，2线上")
    @TableField("sale_type")
    private Integer saleType;

    @ApiModelProperty(value = "销售价格(分)")
    @TableField("sale_price")
    private Integer salePrice;

    @ApiModelProperty(value = "初始余额(分)")
    @TableField("remain_amount")
    private Integer remainAmount;

    @ApiModelProperty(value = "版本号")
    @TableField("version_number")
    private String versionNumber;

    @ApiModelProperty(value = "批次号")
    @TableField("batch_number")
    private String batchNumber;

    @ApiModelProperty(value = "流水号")
    @TableField("serial_number")
    private Long serialNumber;

    @ApiModelProperty(value = "操作人id(酒店的话是酒店归属人id)")
    @TableField("operator_id")
    private Integer operatorId;

    @ApiModelProperty(value = "操作时间")
    @TableField("operator_time")
    private Date operatorTime;

    @ApiModelProperty(value = "创建日期")
    @TableField("create_time")
    private Date createTime;

    @ApiModelProperty(value = "更新日期")
    @TableField("update_time")
    private Date updateTime;

    @ApiModelProperty(value = "绑卡日期")
    @TableField("bind_card_date")
    private Date bindCardDate;

    @ApiModelProperty(value = "过期日期(绑卡日期开始算起）")
    @TableField("expired_date")
    private Date expiredDate;


    public static final String ID = "id";

    public static final String CARD_NO = "card_no";

    public static final String SECURITY_CODE = "security_code";

    public static final String PASSWORD = "password";

    public static final String HOTEL_ID = "hotel_id";

    public static final String SALER_ID = "saler_id";

    public static final String SALER_TYPE = "saler_type";

    public static final String CARD_TYPE = "card_type";

    public static final String ENABLE = "enable";

    public static final String STATUS = "status";

    public static final String HELP_PAY = "help_pay";

    public static final String SALE_TYPE = "sale_type";

    public static final String SALE_PRICE = "sale_price";

    public static final String REMAIN_AMOUNT = "remain_amount";

    public static final String VERSION_NUMBER = "version_number";

    public static final String BATCH_NUMBER = "batch_number";

    public static final String SERIAL_NUMBER = "serial_number";

    public static final String OPERATOR_ID = "operator_id";

    public static final String OPERATOR_TIME = "operator_time";

    public static final String CREATE_TIME = "create_time";

    public static final String UPDATE_TIME = "update_time";

    public static final String BIND_CARD_DATE = "bind_card_date";

    public static final String EXPIRED_DATE = "expired_date";

}
